MONTE CARLO ALGORITHM